package model

type Comment struct {
	ID        uint   `gorm:"primary_key" json:"id"`
	Content   string `gorm:"type:text;not null"`
	UserId    uint   `json:"user_id" gorm:"not null"`
	ArticleId uint   `json:"article_id" gorm:"not null"`
	CreatedAt Time   `json:"created_at"`
	Likes     uint   `json:"likes" gorm:"not null"`
	FatherId  uint   `json:"father_id" gorm:"not null"`
}

type CommentInfo struct {
	ID        uint   `json:"id"`
	Content   string `json:"content"`
	UserId    uint   `json:"user_id"`
	ArticleId uint   `json:"article_id"`
	UserName  string `json:"user_name"`
	Avatar    string `json:"avatar"`
	CreatedAt Time   `json:"created_at"`
	Likes     uint   `json:"likes"`
	FatherId  uint   `json:"father_id"`
	ReplyCnt  uint   `json:"reply_cnt"`
}

type SubCommentInfo struct {
	ID            uint   `json:"id"`
	Content       string `json:"content"`
	UserId        uint   `json:"user_id"`
	ArticleId     uint   `json:"article_id"`
	UserName      string `json:"user_name"`
	Avatar        string `json:"avatar"`
	CreatedAt     Time   `json:"created_at"`
	Likes         uint   `json:"likes"`
	FatherId      uint   `json:"father_id"`
	RepliedId     uint   `json:"replied_id"`
	RepliedAvatar string `json:"replied_avatar"`
	RepliedName   string `json:"replied_name"`
}

type CommentRequest struct {
	Content string `json:"content"`
}

type ReplyRequest struct {
	FatherId uint   `json:"father_id"`
	Content  string `json:"content"`
}

type SubComment struct {
	Id       uint `json:"id"`
	FatherId uint `json:"father_id"`
}
